Method and computer for responding to a query

ABSTRACT

A method of, and a computer for, processing a query. The method includes receiving the query in a first language at a computerized messaging device, the first language being one of different languages. A template in the first language is then selected from one of the different languages and query data corresponding to the first language is retrieved from a database of query data. The method includes populating the template with template data corresponding to the first language to define a query response in the query language, and communicating the query response from the device to a recipient.

FIELD OF THE INVENTION

The present invention relates generally to computerized responses toqueries and, more specifically, to a method of, and computer for,responding to a query.

BACKGROUND OF THE INVENTION

Centralized facilities are often provided for responding to customerqueries from various geographic locations. Such facilities may have anumber of different applications running to respond to customer queriesand, in certain circumstances, queries may be routed between differentfacilities for load sharing purposes. Due to the global nature ofbusiness, the queries received from the customers may be in a variety ofdifferent languages. In order to accommodate different queries indifferent languages, each facility may provide a separate applicationdedicated to a particular language. Accordingly, once a languageassociated with an incoming query has been determined, the query is thenrouted to an independent application dedicated to the particularlanguage. This method typically requires a separate agent, fluent in theparticular language, to attend to a request in the particular languageusing the particular application dedicated to the particular language.

In order to facilitate responding to customer queries, a facilitytypically has a plurality of predefined templates each of which areassociated with a particular query. The template contains a narrative ofthe response to be sent to the customer, and “place holders” or fieldsrequiring customer specific data. The agent may then merely populate thetemplate, as this requires far less time than generating a response fromscratch.

SUMMARY OF THE INVENTION

A method of, and a computer for, processing a query are provided. Themethod comprises receiving the query in a first language at a computer,the first language being one of a plurality of different languages. Atemplate in the first language is then selected from one of a pluralityof different languages and query data corresponding to the firstlanguage is retrieved from a database of query data. The method includespopulating the template with template data corresponding to the firstlanguage to define a query response in the first language, andcommunicating the query response from the computer to a recipient.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description, which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and notlimitation, in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 shows a schematic diagram of an exemplary method and computer, inaccordance with an aspect of the invention, for responding to a query;

FIG. 2 shows a schematic diagram of the method implemented in anInternet environment;

FIG. 3 shows a schematic flow diagram of the method executed by thecomputer of FIG. 1;

FIG. 4 shows a more detailed schematic flow diagram of the exemplarymethod implemented by a multi-threaded software application;

FIG. 5 shows a schematic high-level representation of exemplarytemplates and associated template data used in the method;

FIGS. 6 to 9 show exemplary tables used to store the template data;

FIG. 10 shows an exemplary screen shot of a user interface forconfiguring locale data;

FIG. 11 shows a schematic flow diagram of initialization of an objectmanager process;

FIG. 12 shows a schematic flow diagram of exemplary application logic topopulate a correspondence template;

FIG. 13 shows a schematic flow diagram of exemplary logic in the objectmanager when the application switches its session locale and datalanguage;

FIG. 14 shows a schematic flow diagram of exemplary logic in the objectmanager to support multi-lingual data when a business component isexecuted;

FIG. 15 shows a schematic flow diagram of exemplary logic in the objectmanager when formatting a datum;

FIG. 16 shows a schematic block diagram of access by the application toa value of a translatable field; and

FIG. 17 shows a schematic exemplary hardware block diagram of thecomputer of FIG. 1.

DETAILED DESCRIPTION

A method of, and a computer for, processing a query are described. Inthe following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be evident, however, toone skilled in the art that the present invention may be practicedwithout these specific details.

Referring in particular to FIG. 1, an exemplary flow diagram isillustrated describing, from a high level, a method in accordance withan aspect of the invention for processing a query in any one of aplurality of languages. The method of FIG. 1 is typically implemented ina single, multi-threaded, computer application in which changes betweendifferent languages and different locales during processing take placedynamically. For example, a sequence of queries in languages A, B and C,as shown by arrow 22 in FIG. 1, may be received by a computer 24 whichthen processes each query in a multi-threaded fashion and generates aresponse to each query in the same language that the query was receivedin. Thereafter, the response is communicated to a recipient as shown byarrow 26. In addition to processing the query in any one of theplurality of languages supported, the computer 24 allows an agent, usingthe computer 24, to view and populate a template in a selected agentlanguage which may be different from a first or query language in whichthe query was received. Thus, in certain embodiments, the computer 24may use a single application, which interfaces with the agent in his orher preferred selected agent language, but receives queries and respondsto queries in a different query language.

With the explosion of the Internet, facilities such as call centersresponding to customer queries, may receive queries from variousdifferent regions or countries in which different languages are spoken.In addition to the different languages, each particular country may havepreferred locale rules relating to the format or manner in which aresponse to a query should be set out, for example, formatting the dateas either mm/dd/yy or dd/mm/yy. In addition, in order to balance loadsat different facilities or call centers, queries are often routed todifferent call centers and, it will thus be appreciated, that processingthe queries in a multi-lingual fashion facilitates this process.

For example, when the invention is implemented in an Internetenvironment, in FIG. 2 the computer 24 is connected to the Internet 28,and may receive a query in English from a customer 30 in England, aquery in German from a customer 32 in Germany, and a query in Frenchfrom a customer 34 located in France. The computer 24 may then in asingle user session process any one or more of the queries or, in theevent of the computer 24 being overloaded, redirect any one or more ofthe queries requiring processing, as shown by line 36 in FIG. 2, to asimilar computer 38, located at a different facility, which would thenprocess the query irrespective of the query language. In one embodiment,the computers 24,38 may in addition process a query in an agent languagethat differs from the query language. Thus, an agent 40 of FIG. 2, thatis associated with the computer 24, may process any one of the queriesfrom the customers 30, 32, 34 in English, and an agent 42, to which anyone of the queries has been routed, may process the routed query orqueries in French. However, responses from both computers 24, 38 aresent out in the same language in which the query was received.

In one embodiment, the computer 24 operates in a totally automatedfashion without user intervention. However, in other embodiments, thecomputer 24 requires input from an operator or agent. When requiringinput from an agent or operator, the agent may identify a particulartemplate to respond to the query, as well as the particular language inwhich the template is to be provided.

FIG. 3 shows a high level view of how the computer 24, in oneembodiment, allows the processing of queries in an agent language thatis different from the query language. In one embodiment, the computer 24typically has a default language set to the language of choice of theagent upon installation. For example, if the computer 24 is installed inthe United States of America, the agent language is typically Englishand, accordingly, in this embodiment all interaction via a display ofthe computer 24 with an agent is in English, unless the agent languageis specifically changed. Accordingly, in this embodiment a displayscreen of the computer 24 displays templates, suitable for responding tothe query as well as data to populate the template, in the agentlanguage. In block 44, when, for example, a query is received inlanguage A, the agent at an exemplary call center or facility 46identifies the particular language of the query, as well as theparticular template that is suitable to respond to the query. The agentthen enters the query language into the computer 24 using a drop downmenu of the computer 24. The computer 24 then, in an automated fashionin one embodiment, populates a corresponding template in language A withtemplate data corresponding to language A. In block 47 the operator oragent views the response in the agent language which is his or herlanguage of choice. Thereafter, in block 48, the response is sent in thequery language (query language A) to the recipient. In order to performits various functions the computer 24 has a processor 25 which accessesa database 27.

Referring in particular FIG. 4, an exemplary software application 50,also in accordance with an aspect of the invention, is illustrated. Thesoftware application 50 can be run on the computer 24 to process queriesin different languages. The application 50 is a multi-threadedapplication so that it can process queries in different languages, andalso process one or more queries simultaneously or concurrently. Inblock 52 of FIG. 4, the application 50 receives a query in any one ofthe languages supported whereafter, in block 54, the application 50identifies the query language and locale of the recipient. Thereafter,in block 56, an appropriate template of FIG. 5 is chosen and thetemplate is then populated in block 58. The functionality carried out inblocks 54, 56 and 58 forms part of a single thread of the multi-threadedapplication 50. Accordingly, in one embodiment, the functionality inblocks 54, 56 and 58 of the application 50 may be repeated for eachdifferent thread which is executed by the application 50 in any singleuser session. After a particular thread has processed the query andgenerated a response in the particular language in which the query wasreceived (the query language), the response is then communicated to therecipient in block 60. In one embodiment, multiple instances of theapplication 50 are provided on a plurality of servers so as toaccommodate a large number of queries such as those typically receivedvia the Internet.

As shown in FIG. 5, the application 50 includes a plurality of differenttemplates in a plurality of different languages. In one embodiment,different templates types may be provided for different types of queriesand each template type is also provided in different languages.Accordingly, as shown in FIG. 5, each template which, for example,relates to a specific product query, may be provided as a Spanishtemplate 62, a French template 64, a Portuguese Template 66, an Englishtemplate 68, and any other languages which the application 50 maysupport. Likewise, different template types may be provided fordifferent products or different queries and the appropriate templatetype that answers the query is chosen in block 56 of FIG. 4. Once theappropriate template type to address the query has been chosen, aspecific template in the query language is then chosen. The specifictemplate is then populated in block 58 using, for example, data fromtables such as customer data tables 70, product data tables 72, localedata tables 74, and any other relevant data tables 76 which the templatemay require. The tables 70, 72, 74 and 76 may be provided in thedatabase 27.

An example of a template is as follows:

Dear [First Name] [Last Name],

We have received your complaint against [Product Number], [ProductDescription] and a Service Request [Service Request Number] has beenlogged to track the progress on resolving it. The current status of theService Request is [Service Request Status]. If you do not hear from usby [Expected Resolution Date], please call [Phone Number].

In one embodiment, the above exemplary template is provided in all thedifferent languages supported by the application 50. The templates ineach language include placeholders or fields for receiving template dataassociated with the particular query. The template data included in thefields or placeholders may or may not be language dependant. Forexample, the Product Number place holder need not, in certaincircumstances be language dependant, however, the Product Descriptionmay be dependant on the query language. Accordingly, in one embodiment,the template may be populated with both language dependant and languageindependent data. Thus, in certain embodiments, the customer data tables70 my include language dependant and language independent data, theproduct data tables 72 may include data in the plurality of differentlanguages supported by the application 50, the locale data tables 74 maybe dependant on language, and the other relevant data tables 76 may ormay not be dependant on the query language, depending upon how theapplication 50 is configured. When the application 50 populates theparticular template in the particular query language, template data inthe query language is thus selected from data provided in a plurality ofdifferent languages. The locale data is then used to define the formator manner in which the template data is included in the template.

Referring in particular FIG. 6, an exemplary locale data table 80 isillustrated from which appropriate locale data is retrieved to definethe format in which the template data is to be included in the template.In one embodiment, sets of locale data are provided wherein each setcorresponds to a particular query language. As mentioned above, in oneembodiment the locale data includes a set of locale rules that definehow data is to be displayed or formatted in each particular template.The locale rules are used to format the data so that, in one embodiment,when the template is read it is in a format corresponding to aparticular geographical convention associated with the query language.Typical examples of locale data are dates, times, numbers, currencybased data, or the like.

In one embodiment, the locale data is defined during a configurationoperation with the aid of a user interface 82 of FIG. 10. In order toidentify a particular locale set corresponding with a particular querylanguage, a locale code 84 is provided. In one embodiment, the localecodes are internationally accepted codes or commonly known codes such asthose provided by Microsoft™. However, it is to be appreciated that theMicrosoft™ codes are provided merely by way of example and that anyother standard or non-standard codes can be used. When configuring thecomputer 24 to run the application 50, an administrator may select theparticular locale code 84 and enter the relevant data in a form 86 ofFIG. 10. In certain embodiments, default values are provided tofacilitate configuration. Any one or more of the fields 86 may be usedto define the format in which the template data is displayed in thetemplate. For example, each locale code 84 may be defined in terms ofany one or more of an international dialing code 90, a positive currencyformat 92, a negative currency format 94, a number decimal separator 96,a number grouping separator 98, a number of fractional digits 100, anumber of leading zeros 102, a list separator 103, a short date format104, a long date format 106, a date separator 108, a time separator 110,a time designator position 112, an option to add a leading zero for time114, an option to set a twenty-four hour clock 116, an AM/PM timedesignator 118, and a user interface directionality facility 120.

Returning to FIG. 6, the locale data table 80 shows schematically howdifferent configurations or data formats are associated with each localecode 84. For example, when the query language is English-USA, then thelocale code 84 is ENU and the template data is formatted so that a dateis shown as MM/DD/YY and a currency is shown in US Dollars. Likewise, ifthe query language is English—United Kingdom, then the locale code 84 isENG and the template data is formatted so that the date is displayed asDD/MM/YY and the currency is British Pounds. In a similar fashion inother embodiments, various other locale codes 84 may provide a format inwhich the template data is displayed so that a recipient of the responsereceives a customized response in a format customarily used in theirparticular language.

Referring in particular to FIG. 7, an exemplary product data table 122is illustrated from which appropriate product data is retrieved forpopulating the template. The exemplary product data table 122 includes aplurality of product names 124 and product descriptions 126 which areidentified as translatable items. The exemplary product data table 122further includes translation table names 128 which identify an exemplarytranslation table 130 of FIG. 8, which includes translations of productdescriptions and product names in each of the languages supported by theapplication 50. Thus, in one embodiment, when populating the template, aproduct description and a product name set out in the query language isimported or populated into the template.

In certain embodiments, the application 50 includes the other relevantdata tables 76 of FIG. 5 in various different languages for inclusion inthe chosen template. For example, a multi-lingual list of values (MLOV)table 132 of FIG. 9 is provided in certain embodiments. The MLOV table132 may include a data type e.g. a salutation 134 and, associated witheach data type 134, is a name 136, a value 138 and a language code 140.Accordingly, in certain embodiments, when the query language has beenidentified, the language code 140 may be identified and used to retrieverelevant data from the MLOV table 132 to populate the template with dataassociated with the query language. For example, when the type is asalutation 134, and the language code is English (ENG), the value 138would then be “Mr.” However, when the language code 140 is French (FRA)then the value 138 would then be “Monsieur.”

Referring in particular to FIGS. 11 to 16 of the drawings, an embodimentof an object orientated implementation of the application 50 isprovided. In the embodiment depicted in FIGS. 11 to 16, the application50 is a multi-threaded application in which an object manager hosts thelogic to process the queries.

FIG. 11 illustrates an exemplary flow diagram of an initializationprocess to initialize the object manager. During the initializationprocess, in block 152 a component object manager process is firstinitialized whereafter locale information for a component locale is readand added to a global locale map in block 154. The locale informationmay be read from the locale data table 80 of FIG. 6 when particularlocale information, associated with a particular query language, isrequired. In one embodiment, the locale information is then cached. Whena query in a different language requires locale information that has notalready been cached, locale information, associated with the differentquery language, is once again read from the locale data table 80 andadded to the cache. Thus, in one embodiment, the particular localeinformation is dependent upon the query language and, accordingly,locale information specific to a particular query language is added tothe cache each time a query in a different language is received by theapplication 50.

Once the locale information associated with the query language has beenretrieved, and an appropriate template in the query language has beenidentified, the template is then populated as discussed above withreference to block 58 in FIG. 4. Referring in particular to FIG. 12,exemplary application logic of the application 50 to populatecorrespondence templates is illustrated. The application logic in block158 initially chooses a particular template for the correspondence orquery response that is to be communicated to the recipient. Choosing theappropriate template relates both to choosing an appropriate templatethat addresses the content of the query as well as choosing the languageof the appropriate template, which is typically the query language. Oncethe query language has been identified, in block 160 the session datalanguage code 140 of FIG. 9 and the session locale code 84 of FIG. 6 areset. Thereafter, in block 162 business components that are logicalstores for the data used in the template are executed and values areobtained, for example, from the MLOV table 132 of FIG. 9, which are thenused to populate the template in block 164 of FIG. 12.

Exemplary functionality in setting the session data language code 140and the locale code 84 in block 160 of FIG. 12 is described in moredetail in FIG. 13. In block 168 of FIG. 13, the logic in the objectmanager switches the session locale code 84 and data language code 140to accommodate a query in a different language. For example, assumingthe application 50 sets the locale code 84 to French (code FRA) as shownin block 168, then the logic in block 170 of FIG. 13 checks to ascertainwhether or not the locale information or data for French is present inthe global locale map. If the locale information is not present in theglobal locale map, then in block 172 the locale information is read fromthe locale data table 80 of FIG. 6 and stored in cache, and the logicthereafter proceeds to block 174 in FIG. 13. If, however, the localeinformation is already present in the global locale map, then the logicproceeds directly from block 170 to 174. In block 174 the application 50sets the data language code 140 for the particular session to French.The data language code 140 is thus the language in which the query is tobe responded to and is thus the same as the query language. After thedata language code 140 has been set, the logic of FIG. 13 in block 176then performs a clean up operation of any session structures dependenton the data language code 140 and sets the data language for the currentthread to French.

As mentioned above with reference to block 162 of FIG. 12, theapplication logic executes business components and this logic orfunctionality is shown in more detail in FIG. 14. In particular, FIG. 14illustrates exemplary logic in the object manager to support themulti-lingual data when the business component is executed. The logic inblock 180 of FIG. 14 initially identifies whether a particular businesscomponent has associated language dependent tables such as the productdata table 122 and the translation table 130 of FIGS. 7 and 8respectively. This may be required as, in certain embodiments, not alltemplate data may be language dependant and thus include translations indifferent languages for inclusion in the particular template. If thebusiness component has an associated language component, then in block182 the translation table 130 is joined to retrieve a row correspondingto the session data language code 140 so that template data in theparticular language of the chosen template is retrieved to populate thetemplate.

Referring in particular to FIG. 15, a schematic flow diagram isillustrated that describes exemplary logic in the object manager whenthe application obtains locale data. In one embodiment, in block 188 theapplication 50 accesses a value for a Date, Currency, Time, DateTime,Number or Phone field required for the template. As the preferred formatof the aforementioned values may differ from locale to locale, theformatting function calls a static method in block 190 in a locale classto get a pointer to point to the particular process locale. The pointeris defined with reference to the global locale map which is the map ofthe locale information for the particular query language stored incache, as described above in block 154 of FIG. 11 and block 172 of FIG.13. Thus, in block 192 of FIG. 15, the method in the locale classaccesses the global locale map and returns a pointer to the specificlocale used in the current session, and thereafter formats the templatedata for the specific session locale in block 194 in FIG. 15 using thelocale data table 80 of FIG. 6. It is important to bear in mind that, incertain embodiments, the application 50 is multi-threaded and,accordingly, the pointer may relate to a specific thread of one of aplurality of different threads that each relate to a different query.

Referring in particular to FIG. 16, in block 198 the application logicaccesses the value of a translatable field. In block 200, the logicchecks to determine whether or not the field is based on data providedin the MLOV table 132 of FIG. 9 and, if not, a translated value isretrieved in block 202 from the translation table 130. However, if thefield is based on data provided in the MLOV table 132, then in block 204the logic of FIG. 16 checks to determine whether or not the valuesrequired for the session query language are cached. If the values arenot cached in the session query language, then in block 132 of FIG. 16the logic updates the cache by reading a list of values from the MLOVtable 132 of FIG. 9 associated with the query language, and in block 206stores the values in cache. If the values are already stored in cache,then in block 208 the cached valued is returned to the application 50.

Thus, the object orientated embodiment of the application 50 allowsmultiple threads to run on the computer 24 so that queries in differentquery languages may be processed. As each thread is processed, thelanguage code 140 of the product data table 122 of FIG. 8 and thetranslation table of FIG. 9 is set for the particular thread. Likewise,as each thread is processed, the locale code 84 of the locale data table80 is set. It is important to appreciate that the tables of FIGS. 6 to 9are merely provided by way of example. Thus, dependent upon thecircumstances, a variety of different tables may be provided to populatethe template with template data in an appropriate language.

FIG. 17 shows a diagrammatic representation of machine in the exemplaryform of the computer system 300 within which a set of instructions, forcausing the machine to perform any one of the methodologies discussedabove, may be executed.

The computer system 300 includes a processor 302, a main memory 304 anda static memory 306, which communicate with each other via a bus 308.The computer system 300 may further include a video display unit 310(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Thecomputer system 300 also includes an alphanumeric input device 312 (e.g.a keyboard), a cursor control device 314 (e.g. a mouse), a disk driveunit 316, a signal generation device 318 (e.g. a speaker) and a networkinterface device 320.

The disk drive unit 316 includes a machine-readable medium 322 on whichis stored a set of instructions (software) 324 embodying any one, orall, of the methodologies described above. The software 324 is alsoshown to reside, completely or at least partially, within the mainmemory 304 and/or within the processor 302. The software 324 may furtherbe transmitted or received via the network interface device 320. For thepurposes of this specification, the term “machine-readable medium” shallbe taken to include any medium which is capable of storing or encoding asequence of instructions for execution by the machine and that cause themachine to perform any one of the methodologies of the presentinvention. The term “machine-readable medium” shall accordingly be takento included, but not be limited to, solid-state memories, optical andmagnetic disks, and carrier wave signals.

Thus, a method and computer for responding to a query in any one of aplurality of languages have been described. Although the presentinvention has been described with reference to specific exemplaryembodiments, it will be evident that various modifications and changesmay be made to these embodiments without departing from the broaderspirit and scope of the invention. Accordingly, the specification anddrawings are to be regarded in an illustrative rather than a restrictivesense.

1. A computer-implemented method comprising: receiving a customer queryin a first language; selecting, in response to the query, a templatefrom a plurality of templates in different languages, wherein: theselected template is of a type that answers the query, and the selectedtemplate corresponds to the first language; and populating the selectedtemplate with template data based on a set of locale rules associatedwith the first language, the set of locale rules defining how data is tobe formatted in the selected template.
 2. The method of claim 1, whichfurther comprises: retrieving the template data corresponding to thefirst language; populating the template with the template datacorresponding to the first language to define a query response in thefirst language; and communicating the query response to a recipient. 3.The method of claim 2, wherein when a plurality of different templatetypes are provided for different types of queries, the method furthercomprises: identifying a template type from the plurality of templatetypes for the query; and retrieving the template in the first language.4. The method of claim 2, which comprises populating a plurality ofdifferent templates each relating to a separate query in amulti-threaded process running on the computer.
 5. The method of claim4, wherein at least two threads of the multi-threaded process populatetheir associated templates concurrently in different languages.
 6. Themethod of claim 2, which comprises retrieving salutation data andproduct data in the first language.
 7. The method of claim 1, whereinthe set of locale rules are selected from a plurality of sets of localerules wherein each set of locale rules is associated with at least onelanguage from the plurality of languages.
 8. (canceled)
 9. The method ofclaim 7, wherein each set of locale rules defines at least one of a dateseparator, an international dialing code, a list separator, a localecode, a locale name, a long date format, a negative currency format, anumber decimal format, a number of fractional digits, a number groupingseparator, a number of leading zeros, a positive currency format, ashort date format, a time format designator, and a time separator. 10.The method of claim 2, which comprises monitoring selection of aparticular language by an agent, and switching dynamically to theselected particular language from one of the plurality of languages. 11.The method of claim 2, which comprises displaying a first templatecorresponding to the selected template to an agent in a selected agentlanguage, and populating the first template in the first language, theselected agent language and the first language being differentlanguages.
 12. The method of claim 11, wherein the query is received inthe computer in the form of an e-mail message; and the query response iscommunicated to the recipient as an e-mail message.
 13. The method ofclaim 2, wherein when the query is a structured query, the methodcomprises: automatically identifying the first language; andautomatically identifying an appropriate template from the structuredquery.
 14. The method of claim 13, which the query is received via theInternet using a structured web form.
 15. A machine-readable storagemedium comprising a plurality of instructions encoded thereon that, whenexecuted by a processing system, cause the processing system to: receivea customer query in a first language; select, in response to the query,a template from a plurality of templates in different languages,wherein: the selected template is of a type that answers the query, andthe selected template corresponds to the first language; and populatethe selected template with template data based on a set of locale rulesassociated with the first language, the set of locale rules defining howdata is to be formatted in the selected template.
 16. The article ofmanufacture of claim 15, wherein when executed the instructions furthercause the machine to: retrieve template data corresponding to the firstlanguage; populate the template with the template data corresponding tothe first language to define a query response in the first language; andcommunicate the query response to a recipient.
 17. The article ofmanufacture of claim 16, wherein when executed the instructions furthercause the machine to populate a plurality of different templates eachrelating to a different query in a multi-threaded process running on themachine.
 18. The article of manufacture of claim 16, wherein when aplurality of different template types are provided for different typesof queries, a template type from the plurality of template types isidentified and the template is retrieved in the first language.
 19. Thearticle of manufacture of claim 17, wherein at least two threads of themulti-threaded process populate their associated templates concurrentlyin different languages.
 20. The article of manufacture of claim 16,wherein salutation data and product data is retrieved in the firstlanguage.
 21. The article of manufacture of claim 16, wherein the set oflocale rules are selected from a plurality of sets of locale ruleswherein each set of locale rules is associated with at least onelanguage from the plurality of languages.
 22. (canceled)
 23. The articleof manufacture of claim 21, wherein each set of locale rules defines atleast one of a date separator, an international dialing code, a listseparator, a locale code, a locale name, a long date format, a negativecurrency format, a number decimal format, a number of fractional digits,a number grouping separator, a number of leading zeros, a positivecurrency format, a short date format, a time format designator, and atime separator.
 24. The article of manufacture of claim 16, whereinselection of a particular language by an agent is monitored, and theinstructions cause the machine to switch dynamically to the selectedparticular language from one of the plurality of languages.
 25. Thearticle of manufacture of claim 16, wherein a first templatecorresponding to the selected template is displayed to an agent in aselected agent language, and the first template for responding to thequery is populated in the first language, the selected agent languageand first language being different languages.
 26. The article ofmanufacture of claim 25, wherein the query is received in the machine inthe form of an e-mail message; and the query response is communicated tothe recipient as an e-mail message.
 27. The article of manufacture ofclaim 16, wherein when the query is a structured query, the instructionscause the machine to: automatically identify the first language; andautomatically identify an appropriate template from the structuredquery.
 28. The article of manufacture of claim 27, wherein the query isreceived via the Internet using a structured web form.
 29. A computercomprising: a database to store a plurality of templates in a pluralityof different languages; and a processor coupled to the database, theprocessor configured to: receive a customer query in a first language;select, in response to the query, a template from the plurality oftemplates, wherein: the selected template is of a type that answers thequery, and the selected template corresponds to the first language; andpopulate the selected template with template data based on a set oflocale rules associated with the first language, the set of locale rulesdefining how data is to be formatted in the selected template.
 30. Thecomputer of claim 29, wherein the processor is to: retrieve templatedata corresponding to the first language from the database; populate thetemplate with the template data corresponding to the first language todefine a query response in the first language; and communicate the queryresponse to a recipient.
 31. The computer of claim 30, wherein aplurality of different templates each relating to a separate query arepopulated in a multi-threaded process on the computer.
 32. The computerof claim 31, wherein at least two threads of the multi-threaded processconcurrently populate their associated templates in different languages.33. The computer of claim 30, wherein when a plurality of differenttemplate types are provided for different types of queries, theprocessor identifies a template type for the query from the plurality oftemplate types, and retrieves the template in the first language. 34.The computer of claim 33, wherein salutation data and product data areretrieved from the database in the first language.
 35. The computer ofclaim 29, wherein the set of locale rules are selected from a pluralityof sets of locale rules wherein each set of locale rules is associatedwith at least one language from the plurality of languages. 36.(canceled)
 37. The computer of claim 35, wherein each set of localerules defines at least one of a date separator, an international dialingcode, a list separator, a locale code, a locale name, a long dateformat, a negative currency format, a number decimal format, a number offractional digits, a number grouping separator, a number of leadingzeros, a positive currency format, a short date format, a time formatdesignator, and a time separator.
 38. The computer of claim 30, whereinselection of a particular language by an agent is monitored, and theprocessor switches dynamically to the particular language from any oneof the plurality of languages.
 39. The computer of claim 30, wherein afirst template corresponding to the selected template is displayed to anagent in a selected agent language, and the first template is populatedin the first language, the selected agent language and first languagebeing different languages.
 40. The computer of claim 39, wherein thequery is in the form of an e-mail message; and the query response iscommunicated to the recipient as an e-mail message.
 41. The computer ofclaim 30, wherein when the query is a structured query, the processor:automatically identifies the first language; and automaticallyidentifies an appropriate template from the structured query.
 42. Thecomputer of claim 41, wherein the query is received via the Internetusing a structured web form.
 43. A system comprising: means for storinga plurality of templates in a plurality of different languages; andmeans for receiving a customer query in a first language; and means forselecting, in response to the query, a template from the plurality oftemplates, wherein: the selected template is of a type that answers thequery, and the selected template corresponds to the first language; andmeans for populating the selected template with template data based on aset of locale rules associated with the first language, the set oflocale rules defining how data is to be formatted in the selectedtemplate.
 44. A computer-implemented method comprising: receiving aquery in a first language; selecting a template from a plurality oftemplates in different languages, the template comprising: informationresponsive to the query, wherein the information is in the firstlanguage, a first field for language-independent and locale-dependentdata, and a second field for language-dependent data; and populating thefirst and second fields with data responsive to the query in a formatcorresponding to the first language.
 45. The computer-implemented methodof claim 44, wherein the first field is a date field.
 46. Thecomputer-implemented method of claim 44, wherein the second field is aproduct description field.
 47. The computer-implemented method of claim44, wherein the second field is a service status field.
 48. Thecomputer-implemented method of claim 44, wherein the first field is adate field and the second field is a product description field.
 49. Thecomputer-implemented method of claim 44, wherein the query is receivedfrom a first computer system, the method further comprising: generatinga response to the query, wherein the generating the response comprisesthe populating the first and second fields; and transmitting theresponse to the first computer system.
 50. The computer-implementedmethod of claim 49, wherein the generating the response comprisesgenerating a response that answers the query.
 51. The method of claim 1,further comprising: presenting the template data.
 52. The method ofclaim 51, wherein the presenting comprises storing the template data ina memory.